/**
 * @file: sample_plugin.h
 * @author: sdk team
 * @brief
 * @version: 1.0
 * @date 2022-05-26
 *
 * Copyright:
 * © 2018 北京灵汐科技有限公司 版权所有。
 * 注意：以下内容均为北京灵汐科技有限公司原创，未经本公司允许，不得转载，否则将视为侵权；对于不遵守此声明或者其他违法使用以下内容者，本公司依法保留追究权。
 * © 2018 Lynxi Technologies Co., Ltd. All rights reserved.
 * NOTICE: All information contained here is, and remains the property of Lynxi. This file can not be copied or distributed without the permission of Lynxi Technologies Co., Ltd.
 */

#ifndef __OSD_PLUGIN_H__
#define __OSD_PLUGIN_H__

#include "lyn_plugin_dev.h"
#include "boxInfo.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef struct {
    lynDrawTextAttr attr;
    char text[TEXT_MAX_LEN];
} DrawTextPara;

typedef struct {
    lynDrawTextAttrV2 attr;
    char text[TEXT_MAX_LEN];
} __attribute__ ((packed)) DrawTextV2Para;

typedef struct {
    lynBoxesInfo *boxesInfo;    // box信息
    uint32_t imgW;              // 图像宽
    uint32_t imgH;              // 图像高
    lynPixelFormat_t imgFmt;    // 图像格式
    void *imgData;              // 图像数据
    lynFontSize fontSize;
    lynDrawColor fontColor;
    lynDrawThick boxThick;
    lynDrawColor boxColor;
} lynDrawBoxAndTextPara;

/**
 * @brief 画框
 *
 * @param  args
 * @return int
 */
int DrawBox(void *args);

/**
 * @brief osd叠加
 *
 * @param  args
 * @return int
 */
int DrawText(void *args);

int DrawTextV2(void *args);

int lynDrawBoxAndText(lynDrawBoxAndTextPara *para);

#ifdef __cplusplus
}
#endif

#endif